package com.sky.mapper;

import com.sky.entity.Dish;
import com.sky.entity.SetmealDish;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * Author: Zheng
 * Date:   2024/2/19  23:39
 * Package：com.sky.mapper
 * Description：套餐菜品关联数据操作层
 * Version：1.0
 */
@Mapper
public interface SetmealDishMapper {

    /**
     * @description： 根据菜品id查询是否存在关联套餐
     * @date：2024/2/19 23:45
     * @return：
     **/
    @Select("select count(*) from setmeal_dish where dish_id = #{id}")
    Integer count(Long id);

    /**
     * @description： 根据菜品id查询套餐id
     * @date：2024/2/20 13:18
     * @return：
     **/
    List<Long> getSetmealIdsByDishIds(List<Long> dishIds);


    /**
     * @description： 批量插入菜品和套餐关联数据
     * @date：2024/2/20 13:19
     * @return：
     **/
    void insertBatch(List<SetmealDish> setmealDishes);

    /**
     * @description： 修改菜品套餐关联数据
     * @date：2024/2/20 16:26
     * @return：
     **/
    void update(SetmealDish setmealDish);

    /**
     * @description： 根据id查询套餐关联数据
     * @date：2024/2/20 16:57
     * @return：
     **/
    @Select("select * from setmeal_dish where setmeal_id = #{id}")
    List<SetmealDish> getById(Long id);

    /**
     * @description： 根据id删除套餐和菜品关联数据
     * @date：2024/2/20 19:29
     * @return：
     **/
    @Delete("delete from setmeal_dish where setmeal_id = #{setmealId}")
    void deleteBySetmealId(Long setmealId);


}
